package com.sojson.util;

import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.sojson.project.sys.config.entity.dto.ConfigDto;
import com.sojson.project.sys.config.entity.vo.ConfigVo;
import com.sojson.project.sys.config.service.ConfigService;

/**
 * 系统参数工具类
 *
 * @author liu
 * @date 2021-03-17
 */
public class SystemParamUtil extends SystemParamBaseUtil {

    public static ConfigService configService = SpringUtil.getBeanByType(ConfigService.class);

    /**
     * 加载系统参数
     *
     * @param key
     * @throws IOException
     */
    public static void load() throws IOException {
        put(configService.list(new ConfigDto()));
    }

    /**
     * 重新加载系统参数
     *
     * @param key
     * @throws IOException
     */
    public static void reload() throws IOException {
        // 删除缓存
        clear();

        // 加载缓存
        load();
    }

    /**
     * 设置系统参数
     *
     * @param val
     * @throws IOException
     */
    public static void put(ConfigVo val) throws IOException {
        put(val.getKey(), val);
    }

    /**
     * 设置系统参数
     *
     * @param vals
     * @throws IOException
     */
    public static void put(List<ConfigVo> vals) throws IOException {
        Map<String, ConfigVo> hashMap = new HashMap<>();
        for (ConfigVo val : vals) {
            hashMap.put(val.getKey(), val);
        }

        put(hashMap);
    }

}